/* 
 * SystemException.java
 * 
 * Data de criação: 04/07/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.core.exception;

import br.com.o2solutions.core.exception.enumerator.ExceptionScope;

/**
 * Classe responsável por representar as Exceções lancadas por erros sistemicos.
 * 
 * @author osvaldeir
 * @since 04/07/2010
 * 
 */
public class SystemException extends CoreException {

	/**
	 * <serial>1654657987987L</serial>
	 */
	private static final long serialVersionUID = 1654657987987L;

	/**
	 * Construtor
	 * 
	 * @param message
	 *            Mensagem da Exceção
	 * @param cause
	 *            {@link Throwable} da causa
	 * @param keyMessage
	 *            Chave relacionada a exceção.
	 */
	public SystemException(String message, Throwable cause, String keyMessage) {
		this(message, cause);
		this.setKeyMessage(keyMessage);
	}

	/**
	 * Construtor
	 * 
	 * @param message
	 *            Mensagem da Exceção
	 * @param cause
	 *            {@link Throwable} da causa
	 */
	public SystemException(String message, Throwable cause) {
		super(message, cause);
		this.setExceptionScope(ExceptionScope.SYSTEM);
	}

	/**
	 * Contrutor
	 * 
	 * @param message
	 *            Mensagem da Exceção
	 */
	public SystemException(String message) {
		super(message);
		this.setExceptionScope(ExceptionScope.SYSTEM);
	}

}
